package org.example.generics;

import java.util.ArrayList;
import java.util.List;

public class Demo1 {
    public static class NiuA<T> {
        public List<T> list = new ArrayList<T>();
        public static void main(String[] args) {
            NiuA<String> na = new NiuA<>();
            na.list.add("hello");
            System.out.println(na.list);    // [hello]
        }
    }
    // 将T换成了N，在执行效果上是没有任何区别的，只不过我们约定好了T代表type，所以还是按照约定规范来比较好，增加了代码的可读性。
    public static class NiuB<N> {
        public List<N> list = new ArrayList<N>();
        public static void main(String[] args) {
            NiuB<String> nb = new NiuB<>();
            nb.list.add("hello");
            System.out.println(nb.list);    // [hello]
        }
    }
}
